#ifndef __RrcAsnCodecApi_h__INCLUDED__
#define __RrcAsnCodecApi_h__INCLUDED__

#include "../src/asnrt.h"

#include "RrcMessageTypes.h"
#include "../src/AL_RRC_BCCH_DL_SCH_Message.h"

class RrcAsnCodecApi
{
public:
    
    static bool decodeBcchDlSchMessageType(const uint8_t* buffer,
                                  const uint32_t length,
                                  RrcMessageType& msgType);
     
    static bool decodeRrcSystemInformationBlockType1(const uint8_t* buffer,
                                     const uint32_t length,
                                     RrcSystemInformationBlockType1& applMsg);

    static bool decodeRrcSystemInformation(const uint8_t* buffer,
                                     const uint32_t length,
                                     RrcSystemInformation& applMsg);
    RrcAsnCodecApi();

    ~RrcAsnCodecApi();

private:
    static bool getValue(AL_RRC_SchedulingInfo& asnItem, SchedulingInfo& rrcItem);
    static bool getValue(AL_RRC_SubframeAssignment& ansItem, RrcSubFrameAssignment& applItem);
    static bool getValue(AL_RRC_SpecialSubframePatterns& ansItem, RrcSpecSubFramePatterns& applItem);
    static bool getValue(struct AL_RRC_SystemInformationBlockType4& ansItem, RrcSystemInformationBlockType4& applItem);
    static bool getValue(struct AL_RRC_SystemInformationBlockType5& ansItem, RrcSystemInformationBlockType5& applItem);
};

inline RrcAsnCodecApi::RrcAsnCodecApi()
{
}

inline RrcAsnCodecApi::~RrcAsnCodecApi()
{
}

#endif 

